컴포넌트 기반 개발방법론 정의
컴포넌트는 어떤 사물을 구성하는 부품으로, 컴포넌트 기반 개발방법론(CBD: Component Based Development)은 기존에 존재하거나 새로 만든 컴포넌트들을 잘 조합하여 하나의 새로운 소프트웨어를 만드는 개발 방법이다. 컴포넌트를 조합해 재사용함으로써 개발 생산성과 품질을 높이고 시스템 유지보수 비용을 최소화할 수 있는 개발방법론이다.
컴포넌트 호출
- 컴포넌트의 호출은 인터페이스를 통하며 이는 객체지향의 캡슐화와 동일한 원리이다.
재사용 단위
- 컴포넌트 기반 개발에서 재사용 단위는 컴포넌트 단위이다.
설계 전략
- 재사용성을 높이기 위해서는 결합도를 낮추고 응집도를 높이는 설계 전략이 요구된다.
컴포넌트 기반 개발방법론 용어
모듈화
- 분할정복법을 이용하여 복잡한 프로그램을 여러 작은 프로그램으로 나누어 해결해 나가는 기법이다.
결합도
- 소프트웨어 구조 내에서 모듈들 간의 관련성을 측정하는 척도이다.
응집도
- 하나의 모듈 내부의 처리 요소들간의 기능적 연관성을 측정하는 척도이다.
소프트웨어 컴포넌트
- 모듈이라고 불리우는 작은 단위의 프로그램이다.
- 소프트웨어 컴포넌트 자체로서 하나의 독립성이 보장되어야 한다.
- 각 컴포넌트 사이의 연결을 위한 경계면이나 접촉 영역이다.
인터페이스 컴포넌트
- 각각의 소프트웨어 컴포넌트가 표준화된 인터페이스를 가지고 있어야 한다.
- 소프트웨어 컴포넌트도 컴포넌트와 인터페이스에 대한 명세서가 필요하다.
컴포넌트 기반 개발방법론 특징
재사용성
- 생산성 $\leftrightarrow$ 품질: 높은 생산성을 얻기 위해서는 품질이 희생, 높은 품질을 얻기 위해서는 생산성이 희생된다.
- 재사용성으로 생산성과 품질을 모두 획득할 수 있다.
- 재사용되어 생산된 소프트웨어는 높은 품질을 제공한다. (이미 그 품질이 검증되었기 때문)
역할분담
- 컴포넌트 개발자: 기술적으로 뛰어난 사람들이 컴포넌트들을 개발한다.
- 애플리케이션 개발자: 문제 영역에 밝은 사람들이 이를 조립하여 애플리케이션을 개발한다.
- 개발 비용 분산: 상대적으로 뛰어난 개발자들을 컴포넌트 개발에 집중 투입한다.
- 개발 시간 단축: 개발된 고품질의 컴포넌트들을 단순히 조립함으로써 빠른 시간에 소프트웨어를 개발한다.